(byte-optimize-if): Don't presume `clause' is a list.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 24 Aug 2007 14:39:25 +0000 (14:39 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 24 Aug 2007 14:39:25 +0000 (14:39 +0000)
lisp/ChangeLog
lisp/emacs-lisp/byte-opt.el

index 630404a40618f8653f52a6341e4c599290cd48e2..d8a97d44a950dfdce3c66d382a009d28bb407eef 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/byte-opt.el (byte-optimize-if): Don't presume `clause' is
+       a list.
+
 2007-08-24  Thien-Thi Nguyen  <ttn@gnuvola.org>
 
        * progmodes/hideshow.el (hs-match-data): Delete alias.
@@ -39,8 +44,8 @@
 
 2007-08-23  Masatake YAMATO  <jet@gyve.org>
 
-       * progmodes/cc-fonts.el (gtkdoc-font-lock-doc-comments): Highlight
-       name of parameters in document body.
+       * progmodes/cc-fonts.el (gtkdoc-font-lock-doc-comments):
+       Highlight name of parameters in document body.
 
 2007-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
index b4eaf4ff5ebf15827771abeefd6ee11abf2439b4..80a6ad595b23ca8a14649e06ad958ff946bf9e9e 100644 (file)
   ;; (if <test> nil <else...>) ==> (if (not <test>) (progn <else...>))
   ;; (if <test> <then> nil) ==> (if <test> <then>)
   (let ((clause (nth 1 form)))
-    (cond ((eq (car clause) 'progn)
+    (cond ((and (eq (car-safe clause) 'progn)
+                ;; `clause' is a proper list.
+                (null (cdr (last clause))))
            (if (null (cddr clause))
                ;; A trivial `progn'.
                (byte-optimize-if `(if ,(cadr clause) ,@(nthcdr 2 form)))